The present invention relates to the field of terminal services and, more particularly, to containment of terminal application run-time data for viewing when disconnected from a host server.
A terminal application, terminal emulator, or tty for short, is a program that emulates a “dumb” video terminal within some other display architecture. A terminal application covers all remote terminals, which include graphical user interfaces (GUI) and text user interfaces (TUI). A block-oriented terminal is a type of terminal application that communicates with its host server in blocks of data. That is, a terminal application sends records of data to and from the host.
Many terminal applications utilize a visual layout file, which is externally defined from the terminal application. Different standards of visual layout files include Data Description Specification, Basic Mapping Support, computer program product Format services (MFS), Interactive System Productivity Facility (ISPF), and the like. While a front-end of terminal applications have historically been TUIs, modernized ones exist, which have GUI front-ends. These GUI applications use layout definition files, which are often JAVA server pages. From the perspective of the host server, the front-end terminal application to which it communicates is transparent.
At present, interactions involving a remote terminal application require a live connection be established with a host server, which makes design and testing of many terminal based applications difficult. Alternatively, interactions involving a remote terminal application require use of an emulator for a host server that has its own shortcomings, such as greatly diminished response time and emulator establishment and maintenance costs.
It is challenging to modernizing an existing terminal based application from a TUI front-end to a GUI front-end. During this modernization, testing back and forth between the existing text-based front-end and the under-development GUI front-end is time consuming and error prone. Another challenge with testing terminal applications is that it is often difficult or time consuming to place a system into a desired state for testing. For example, to test a particular logic path, a series of actions may need to be conducted, which place the server providing data to the terminal application into a particular state (e.g., take a logic pathway to get to the Menu ABC, Option XYZ.).
Further, security considerations can restrict access to the host server, which increases a difficulty to outsource software development functions in a terminal application situation. Additionally, propriety aspects of mainframe systems and a tight degree of integration between the remote terminal applications and the mainframe system or software running on the host server makes it difficult for developers to leverage code/functionality in a platform independent manner (as required for Service Oriented Architectures).